#include <QString>
#include <QtTest>

class AreaTest : public QObject
{
    Q_OBJECT

public:
    AreaTest();

private Q_SLOTS:
    //每个private slot都是一个被QTest::qExec()自动调用的测试函数
    void testCase001();
    void testCase002();
};

AreaTest::AreaTest()
{
}

void AreaTest::testCase001()
{
    QVERIFY2(true, "Failure");
}

void AreaTest::testCase002()
{
    Area area(1);  //初始化半径为1
    /**************************
     * 使用QVERIFY()宏判断半径为1的面积是否为3.14，由于浮点数不能
     * 直接比较，所以判断绝对值之差小于0.0000001，则认为结果正确。
     * QVERIFY()宏用于检查表达式是否为真，若为真，则程序继续运行，
     * 若测试失败，程序运行终止，如果需要在测试失败时输出信息，
     * 则可使用QVERIFY2(condition, message)，
     * QVERIFY2()在"condition"条件验证失败时输出信息"message"
    **************************/
    QVERIFY(qAbs(area.CountArea() - 3.14) < 0.0000001);
    QVERIFY2(true, "Failure");
}

QTEST_APPLESS_MAIN(AreaTest)

#include "tst_areatest.moc"
